package com.spcloud.demo.service;

import com.ziroom.busrecoup.RecoupJob;
import com.ziroom.busrecoup.RecoupJobService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

/**
 * <p>TODO</p>
 * <p>
 * <PRE>
 * <BR>    修改记录
 * <BR>-----------------------------------------------
 * <BR>    修改日期         修改人          修改内容
 * </PRE>
 *
 * @author cuiyh9
 * @version 1.0
 * @Date Created in 2019年11月04日 14:40
 * @since 1.0
 */
@Service
@Slf4j
public class BusRecoupDemoService {

    @Autowired
    private RecoupJobService recoupJobService;

    /**
     *  添加定时任务
     * @author cuiyuhui
     * @created
     * @param
     * @return
     */
    public  void addJob() {
        //        log.info("homeDao:" + homeDao);
        String jobClass = "com.spcloud.demo.busjob.BusRecoupDemoJob";
        String jobName = "BusRecoupDemoJob";
        String jobDesc = "测试作务";
        String busCode = String.valueOf(System.currentTimeMillis());
        String jsonParam = "{}";

        RecoupJob recoupJob = new RecoupJob();
        // 任务的全路径名
        recoupJob.setJobClass(jobClass);
        // 任务名字
        recoupJob.setJobName(jobName);
        // 任务描述
        recoupJob.setJobDesc(jobDesc);
        // 业务唯一编码
        recoupJob.setBusCode(busCode);
        // 异步方式
        recoupJob.setAsyncExecute(true);
        // 补偿3次
        recoupJob.setRetryTotalTimes(3);
        // 任务所需的参数
        recoupJob.setJobJsonParam(jsonParam);
        // 任务执行时间（可延迟执行，本示例延迟1分钟执行）
//        long afterDate = Long.parseLong(DateUtil.dateFormat((new Date(System.currentTimeMillis() + 60000)), "yyyyMMddHHmmss"));
        long afterDate = 1L;
        // 小于等于当前时间, 立即执行, 如果失败保存到补偿表中
        recoupJob.setStartTime(afterDate);
        // 把任务存储到补偿表里
        recoupJobService.saveRecoupJob(recoupJob);
    }
}
